<?php

/**
 * documentos actions.
 *
 * @package    auip
 * @subpackage documentos
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class documentosActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    $this->documentos_aplicacions = Doctrine_Core::getTable('DocumentosAplicacion')->createQuery('a')->execute();
  }

  public function executeShow(sfWebRequest $request)
  {
    $this->documentos_aplicacion = Doctrine_Core::getTable('DocumentosAplicacion')->find(array($request->getParameter('beca_id'),
                        $request->getParameter('usuario_id'),
                        $request->getParameter('tipo_documento_id')));
    $this->forward404Unless($this->documentos_aplicacion);
  }

  public function executeNew(sfWebRequest $request)
  {
    $this->img = BecaTable::getBecaEncontrada($this->getUser()->getAttribute('id'));
    $this->form = new DocumentosAplicacionForm();
    $this->form->setDefault('beca_id', $this->getUser()->getAttribute('id'));    
    //$this->form->setDefault('nombre_beca', $this->getUser()->getAttribute('nom_beca'));
    $this->form->setDefault('usuario_id', $this->getUser()->getAttribute('email'));    
    $this->form->setDefault('nombre_universidad', $this->getUser()->getAttribute('nom_uni'));
    $this->listado = DocumentosAplicacionTable::getListaDocs($this->getUser()->getAttribute('id'), $this->getUser()->getAttribute('email'));
  }

  public function executeCreate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->form = new DocumentosAplicacionForm();

    $this->processForm($request, $this->form);

    $this->setTemplate('new');
  }
  
  public function executeTerminar(sfWebRequest $request) 
  {
      $this->redirect('becas_aplicables/index');
  }

  public function executeEdit(sfWebRequest $request)
  {
    $this->forward404Unless($documentos_aplicacion = Doctrine_Core::getTable('DocumentosAplicacion')->find(array($request->getParameter('beca_id'),
  $request->getParameter('usuario_id'),
  $request->getParameter('tipo_documento_id'))), sprintf('Object documentos_aplicacion does not exist (%s).', $request->getParameter('beca_id'),
  $request->getParameter('usuario_id'),
  $request->getParameter('tipo_documento_id')));
    $this->form = new DocumentosAplicacionForm($documentos_aplicacion);
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($documentos_aplicacion = Doctrine_Core::getTable('DocumentosAplicacion')->find(array($request->getParameter('beca_id'),
  $request->getParameter('usuario_id'),
  $request->getParameter('tipo_documento_id'))), sprintf('Object documentos_aplicacion does not exist (%s).', $request->getParameter('beca_id'),
  $request->getParameter('usuario_id'),
  $request->getParameter('tipo_documento_id')));
    $this->form = new DocumentosAplicacionForm($documentos_aplicacion);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
  }

  public function executeDelete(sfWebRequest $request)
  {
    $request->checkCSRFProtection();

    $this->forward404Unless($documentos_aplicacion = Doctrine_Core::getTable('DocumentosAplicacion')->find(array($request->getParameter('beca_id'), $request->getParameter('usuario_id'), $request->getParameter('tipo_documento_id'))), sprintf('Object documentos_aplicacion does not exist (%s).', $request->getParameter('beca_id'),
  $request->getParameter('usuario_id'),
  $request->getParameter('tipo_documento_id')));
    $documentos_aplicacion->delete();

    $this->redirect('documentos/new');
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {        
      $file = $this->form->getValue('ruta');
      $id_beca = $this->form->getValue('beca_id');
      $codigo_documento = $this->form->getValue('tipo_documento_id');
      $codigo_usuario = $this->form->getValue('usuario_id');      
      $file->setNameFile('doc_'.UsuarioTable::getNombreUsuario($codigo_usuario)->getNombre().' '.UsuarioTable::getNombreUsuario($codigo_usuario)->getApellidos().'_'.$codigo_usuario);
      $file->setPath(sfConfig::get('sf_upload_dir').'/archivos_aplicaciones/'.$this->getUser()->getAttribute('id').'/'.$codigo_usuario);
      $documentos_aplicacion = $form->save();      
      //$this->redirect('documentos/edit?beca_id='.$documentos_aplicacion->getBecaId().'&usuario_id='.$documentos_aplicacion->getUsuarioId().'&tipo_documento_id='.$documentos_aplicacion->getTipoDocumentoId());
      $this->getUser()->setAttribute('mensaje', 'Se ha ADICIONADO un NUEVO documento ');
      $this->redirect('documentos/new');
    }
  }
}
